
//参数一: state, store中的数据
//参数二: action, 负责接收action ( 一般是一个对象: { type:'', payload: '' }  )

var initialState = {
    Search:[],
    dizhi:[],
    time:""
}

//定义纯函数,导出该函数
//纯函数内部必须要对之前的state进行深拷贝.
//纯函数内部必须返回一个全新的state
//纯函数内部不能执行任何有副作用的代码( 定时器,请求,Math.random(), new Date() )
export default function reducer(state = initialState,action){
    
    //深拷贝
    state = JSON.parse( JSON.stringify(state) )

    //判断动作类型,根据不同的类型, 执行不同的业务操作
    if( action.type == 'ADD' ){ 
        //执行新增操作
        state.Search.push( { 
            id: state.Search.length+1 , 
            name: action.payload, 
        } );
    }
    else if(  action.type == 'DELETE'  ){
        //删除redux里面存的
        state.Search=[]
    }else if(action.type == 'cundizhi'){
        state.dizhi=action.payload
    }else if(action.type == 'time'){
        state.time=action.payload
    }
    //一定不要忘了return , 否则默认返回undefined
    //return 的值一定要是全新的state, 这样可以保证每个组件中的subscribe监听回调一定会执行.
    //return 返回的值会最终存储在store中



    return state;
}